我喜欢上了 tanstack/router ,它让我知道在什么地方,应该做什么。有种熟悉的感觉,就是vue的生命周期的那种感觉。其中有很多内容与nextjs类似,学习的过程中,nextjs的内容也回忆起来了。
之前对react project最大的迟疑就是不知道代码该怎么组织,需要考虑的东西太多了。现在有了 tanstack/router ,我就知道按照 routes 来组织代码即可。
我的经历限制了我的想象,因为我之前一直在做后台管理系统这种类型的项目,所以我感觉nextjs有点功能不足的样子。就是说交互处理很麻烦,要把组件变为client components,想起来都头皮发麻,我会不会把所有组件都变为客户端组件???
实际上tanstack 和 nextjs 各有千秋,一句话总结:
“首要目标是 SEO” 意味着你的流量命脉在 Google/百度/必应的搜索结果里;“内容频繁更新” 意味着你不能只做成静态页面,数据每小时甚至每分钟都在变。
以下是这类项目的典型例子:
SEO 需求:当有人搜索“特斯拉股价”或“什么是 Next.js”时,你的页面必须排在前面。
频繁更新:
这类项目有一个核心痛点:平衡“快”与“准”。
Next.js 的“杀手锏”功能:ISR (Incremental Static Regeneration,增量静态再生) 它允许你这样做:
这就是为什么“内容频繁更新”且“依赖搜索流量”的应用首选 Next.js。
其实仔细想一想,我在淘宝网上有很多交互吗?没有啊,就是查询一下,然后点击购买,然后支付。之后就等着查看物流状态,最多就是在个人页面有一些交互,这些交互都不重,就是一些简单的表单而已。
至于淘宝网上的内容CRUD,完全可以使用另一个网站来处理,也就是后台管理系统,这就可以使用别的技术栈了。
真的,静态网站使用nextjs才是正题。
这两天在学习nextjs v16 最新的cache components功能。搞得我有点头晕,因为里面有很多概念,这些概念的使用起来看上去很简单,但是真的要组合起来用,难度很大。而且就是一个页面,使用了很多技术来优化。这在我看来可能没有价值,但是真的,对广告来说,速度就是一切。
我的感觉就是,nextjs追求的是极致快速的渲染。为此它创造了很多技术、很多概念。就是非常细致、细枝末节非常多,说起来还真的是有技术含量的,用好还真是不容易。
因此我在学习nextjs,做nextjs项目的时候,可以说唯一的核心就是渲染速度,追求的就是这一点。理解了这一点,学习起来,做项目都有方向了。